<!DOCTYPE html>
<html>
<head> 
  <meta charset="utf-8" />
  <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
  <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0">
   

</head>
<body >

 <h1>结果</h1>
 <div id="tempC"></div>
<div style="border:1px solid red;width:360px;height:400px;overflow:scroll;" >
    
<ul id="testDIV"> 
</ul>
</div>
</body>

</html>
<script type="text/javascript">
   
    var totals=[];
    var TestCode = {
        CurrentNumber:0,
        begin:function(){
            var This = this;
            var arrayTemp = [];

    for(var ia=1;ia<11;ia++){
      arrayTemp.push(ia);
    }
    //改变传入数组的内容即可。可以给1至50，则排列出1至50的3个一组的所有可能
    console.log(arrayTemp);
    //arrayTemp = [1,2,3,4,5];
    This.PaiLie(arrayTemp);
        },
        PaiLie:function(array){ 
            var This = this;
            for(var i = 0, len1 = array.length; i < len1; i++) {
                    var a2 = array.concat();
                    /*
                    排除之前已经组合过的数据
                    比如：第一次的时候，i[0] = 1, 这个时候2层循环, 只循环 2~5, 
                    第二次的时候, i[1] = 2, 这个时候2层循环, 只循环 3~5
                    同理：3层循环也是相比于2层循环来
                    */
                    a2.splice(0, i + 1);
                    for(var j = 0, len2 = a2.length; j < len2; j++) {
                        var a3 = a2.concat();
                        a3.splice(0, j + 1);
                        for(var k = 0, len3 = a3.length; k < len3; k++) {
                            var str=array[i] + ' ' +a2[j] + ' ' + a3[k];
                            console.log(str);
                            This.Write(str);
                        }
                    }
                }
        },
        Write:function(str){
        
        var cStr = "第"+this.CurrentNumber+"个结果，【"+str+"]";
         document.getElementById("tempC").innerHTML= cStr;
         document.getElementById("testDIV").innerHTML+="<li>"+str+"</li>";
         this.CurrentNumber++;
        }
    }; 
     
      TestCode.begin();
     
      
      </script>
